use std::env;
use std::fs;
use std::path::PathBuf;

fn main() {
    println!("cargo:rerun-if-changed=build.rs");

    // 假设 gmp.lib 路径为 C:\\path\\to\\gmp\\lib
    let lib_path = "C:\\msys64\\mingw64\\lib";
    let include_path = "C:\\msys64\\mingw64\\include";

    // 设置库搜索路径
    println!("cargo:rustc-link-search=native={}", lib_path);
    // 设置头文件路径
    println!("cargo:include-dir={}", include_path);

    // 告诉编译器链接 gmp.lib
    println!("cargo:rustc-link-lib=static=gmp");


    // === 自动拷贝 DLL 到 target/debug 目录 ===
    let dll_source = "C:\\msys64\\mingw64\\bin\\libgmp-10.dll";

    let out_dir = env::var("OUT_DIR").unwrap();
    let target_dir = PathBuf::from(&out_dir)
        .ancestors()
        .nth(3)
        .unwrap()
        .join("libgmp-10.dll");

    if !target_dir.exists() {
        println!("cargo:warning=拷贝 libgmp-10.dll 到 {:?}", target_dir);
        fs::copy(dll_source, &target_dir)
            .expect("无法拷贝 libgmp-10.dll 到 target/debug/");
    } else {
        println!("cargo:warning=libgmp-10.dll 已存在，跳过拷贝");

    }
 }
